#ifndef __MOTOR_H
#define __MOTOR_H

#include "main.h"
#include "tim.h"
#include "pid/pid.h"
#include "tim.h"

// 电机的速度
extern volatile float MotorA_Speed;
extern volatile float MotorB_Speed;

// PWM开启
#define PWMA_START()	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
#define PWMB_START()	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);

// STBY==1 电机才可以启动
#define	STBY_SET() 		HAL_GPIO_WritePin(STBY_GPIO_Port,STBY_Pin,GPIO_PIN_SET)
#define STBY_RESET()	HAL_GPIO_WritePin(STBY_GPIO_Port,STBY_Pin,GPIO_PIN_RESET)

// 电机A的方向控制
#define AIN1_SET()   	HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_SET)
#define AIN1_RESET() 	HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET)
#define AIN2_SET()		HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_SET)
#define AIN2_RESET()	HAL_GPIO_WritePin(AIN2_GPIO_Port,AIN2_Pin,GPIO_PIN_RESET)

// 电机B的方向控制
#define BIN1_SET()   	HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_SET)
#define BIN1_RESET() 	HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_RESET)
#define BIN2_SET()   	HAL_GPIO_WritePin(BIN2_GPIO_Port,BIN2_Pin,GPIO_PIN_SET)
#define BIN2_RESET() 	HAL_GPIO_WritePin(BIN2_GPIO_Port,BIN2_Pin,GPIO_PIN_RESET)

// PWMA __HAL_TIM_SET_COMPARE 设置占空比
#define SET_PWMA_COMPARE(x) 	__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,(x))

// PWMB __HAL_TIM_SET_COMPARE 设置占空比
#define SET_PWMB_COMPARE(x) 	__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,(x))


void Motor_Set(int Motor1,int Motor2);
void Motor_Set_Speed(float MotorA_Speed,float MotorB_Speed);
void Motor_SpeedUP(void);
void Motor_SpeedCut(void);
#endif

